// 集合: 无序且唯一的数据结构
// ES6存在集合 名为Set
// 集合的常用操作：去重，判断某个元素是否在集合中，求交集等

const set = new Set<number>()

set.add(1)
set.add(2)
set.add(3)
set.add(1)
set.add(3)

console.log(set) // Set(3) { 1, 2, 3 }

let arr: number[] = [1, 2, 3, 4, 1, 3]
// 数组去重
arr = [...new Set(arr)]
console.log(arr) // [ 1, 2, 3, 4 ]

// 判断元素是否在集合中
console.log(set.has(1)) // true
console.log(set.has(4)) // false

// 求交集
const set2 = new Set<number>([1, 3, 2, 3, 1, 4])
const set3 = new Set<number>([1, 3, 2, 3])
const set4 = new Set([...set2].filter(item => set3.has(item)))
console.log(set4) // Set(3) { 1, 3, 2 }





